from src import mnist_loader, network3
from src.network3 import Network
from src.network3 import ConvPoolLayer, FullyConnectedLayer, SoftmaxLayer

training_data, validation_data, test_data = network3.load_data_shared()
mini_batch_size = 10
net = Network([FullyConnectedLayer(n_in=784, n_out=100), SoftmaxLayer(n_in=100, n_out=10)], mini_batch_size)
'''
FullyConnectedLayer 全连接层
        第一个数字n_in=784代表图片像素点一般不改，也代表输入神经元个数
        第二个数字n_out=100代表隐藏神经元个数，此处为1层100个
SoftmaxLayer 使用柔性最大值方式
        第一个数字n_in=100代表隐藏神经元个数，此处为1层100个
        第二个数字n_out=10代表输出神经元个数
'''
net.SGD(training_data, epochs=60,
        mini_batch_size=mini_batch_size,
        eta=0.1,
        validation_data=validation_data,
        test_data=test_data,
        lmbda=0.0)
'''
第一个数字epochs=60代表迭代次数
第二个数字mini_batch_size=mini_batch_size代表随机梯度下降的抽样个数
第三个数字eta=0.1代表学习步长
第四个数字lmbda=0.0代表规范化的lambda参数
'''